// Render Target Texture
// (c) jimon game studio

#ifndef JEH_IRENDERTARGETTEXTURE
#define JEH_IRENDERTARGETTEXTURE

#include "IRenderTarget.h"
#include "ITexture.h"

namespace je
{
	namespace video
	{
		enum RenderTargetTextureLayer
		{
			//! Color 0
			RTTL_COLOR0 = 0,

			//! Color 1
			RTTL_COLOR1 = 1,

			//! Color 2
			RTTL_COLOR2 = 2,

			//! Color 3
			RTTL_COLOR3 = 3,

			//! Depth
			RTTL_DEPTH = 4,
		};
		//! Render Target Texture
		class IRenderTargetTexture:public je::video::IRenderTarget
		{
		public:
			//! Destructor
			virtual ~IRenderTargetTexture()
			{
			}

			//! Attach Texture, return true if successful
			virtual u1 AttachTexture(ITexture * Texture,RenderTargetTextureLayer Layer) = 0;

			//! DeAttach Texture
			virtual void DeAttachTexture(RenderTargetTextureLayer Layer) = 0;

			//! Get Texture
			virtual ITexture * GetTexture(RenderTargetTextureLayer Layer) = 0;

			//! Copy To Buffer
			virtual void CopyToBuffer(IRenderTargetTexture * Destination) = 0;

			//! Get Render Target Type
			virtual RenderTargetType GetRenderTargetType()
			{
				return RTT_TEXTURE;
			}
		};
	}
}

#endif
